[turbopack] update qfilter to 0.3.0-alpha#91467
Merged
lukesandberg merged 1 commit intocanaryfrom Mar 17, 2026
Merged
Conversation
Contributor
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
2 tasks
Collaborator
Failing test suitesCommit: c347912 | About building and testing Next.js
Expand output● app dir - basepath › should successfully hard navigate from pages -> app |
Merging this PR will not alter performance
Comparing Footnotes
|
## Benchmark: turbo-persistence — qfilter 0.3.0-alpha.2 vs 0.2.5 **Platform:** arm64 (Apple Silicon) ### Read (1 GiB compacted DB, 85.33Mi entries, 8-byte keys) | Benchmark | 0.2.5 | 0.3.0-alpha.2 | Change | p-value | |---|---|---|---|---| | hit / uncached | 38.05 µs | 39.35 µs | +8.8% | 0.16 (noise) | | hit / cached | 1.96 µs | 1.92 µs | **-2.3%** | 0.00 | | miss / uncached | 213.0 ns | 208.4 ns | -1.5% | 0.00 | | miss / cached | 178.5 ns | 188.0 ns | +3.6% | 0.00 | ### Write (8.33Mi entries) | Benchmark | 0.2.5 | 0.3.0-alpha.2 | Change | p-value | |---|---|---|---|---| | write | 1.132 s | 1.109 s | **-2.0%** | 0.00 | ### Compaction (4Mi entries, 128 commits) | Benchmark | 0.2.5 | 0.3.0-alpha.2 | Change | p-value | |---|---|---|---|---| | incremental | 17.41 ms | 17.94 ms | +3.0% | 0.30 (noise) | | full | 546.9 ms | 553.9 ms | +1.3% | 0.11 (noise) | ### Summary The upgrade from 0.2.5 to 0.3.0-alpha.2 is a **neutral-to-slight-improvement** in turbo-persistence benchmarks: - **Write: -2.0%** — small but statistically significant improvement - **Read hit/cached: -2.3%** — small improvement - **Compaction:** no significant change - No regressions outside noise
7610827 to
c347912
Compare
Collaborator
Stats from current PR✅ No significant changes detected📊 All Metrics📖 Metrics GlossaryDev Server Metrics:
Build Metrics:
Change Thresholds:
⚡ Dev Server
📦 Dev Server (Webpack) (Legacy)📦 Dev Server (Webpack)
⚡ Production Builds
📦 Production Builds (Webpack) (Legacy)📦 Production Builds (Webpack)
📦 Bundle SizesBundle Sizes⚡ TurbopackClient Main Bundles
Server Middleware
Build DetailsBuild Manifests
📦 WebpackClient Main Bundles
Polyfills
Pages
Server Edge SSR
Middleware
Build DetailsBuild Manifests
Build Cache
🔄 Shared (bundler-independent)Runtimes
📎 Tarball URL |
bgw
approved these changes
Mar 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

What?
Update the
qfiltercrate to an alpha version.Why?
Performance improvements in the quotient filter implementation used by turbo-persistence for SST file lookups.
Benchmark Results
Benchmarks run on Apple Silicon (M-series), comparing
canarybaseline vs this branch. Focused on qfilter-sensitive paths: the filter itself, SST lookups, uncompacted multi-commit DB reads, and writes.qfilter microbenchmarks (direct filter operations)
Summary: Lookups 22-34% faster across all sizes. Insert is slightly slower at small sizes but 12-19% faster at larger sizes where it matters most.
SST file lookup (filter + block read)
Summary: Small but consistent improvements across SST lookups. Miss/cached shows the clearest gains (filter is the primary code path for rejecting misses).
DB-level reads (20 commits, uncompacted -- amplifies filter cost)
Summary: 10-17% faster reads on uncompacted DBs with many SSTs. Miss paths benefit most since the filter rejects without I/O.
Write path (includes filter construction)
Summary: ~6% faster writes across all sizes.
How?
Updated the
qfilterdependency to a new alpha version with improved lookup and insert performance.